package com.loeng.module.system.dal.mysql.dict;

import com.loeng.framework.mybatis.core.mapper.BaseMapperX;
import com.loeng.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.loeng.module.system.dal.dataobject.dict.DictDataDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 字典数据 Mapper
 * @author loeng zhuo
 */
@Mapper
public interface DictDataMapper extends BaseMapperX<DictDataDO> {

    /**
     * 根据字典类型和状态查询字典数据列表
     *
     * @param dictType 字典类型
     * @param status 状态
     * @return 字典数据列表
     */
    default List<DictDataDO> selectListByStatusAndDictType(Integer status, String dictType) {
        return selectList(new LambdaQueryWrapperX<DictDataDO>()
                .eqIfPresent(DictDataDO::getStatus, status)
                .eqIfPresent(DictDataDO::getDictType, dictType));
    }

    /**
     * 根据字典类型和字典值查询字典数据
     *
     * @param dictType 字典类型
     * @param label 字典值
     * @return 字典数据
     */
    default DictDataDO selectByDictTypeAndLabel(String dictType, String label) {
        return selectOne(DictDataDO::getDictType, dictType, DictDataDO::getLabel, label);
    }

}
